<!DOCTYPE html>
<html>
	<head><meta charset="utf-8"><title>NULL</title></head>
	<body></body>
</html>
<script>
	window.addEventListener("unhandledrejection", event => {
		console.log('unhandledrejection', event);
	});
	window.addEventListener("error", event => {
		console.log('onerror', event);
	});

	setTimeout(() => { a1++; }, 100); // error
	setTimeout(() => {
		try{ a2++; }catch(error){ throw error; }
	}, 100);
	new Promise((_, reject) => { reject('a3'); });
	(async () => {
		const fetch = () => {
			setTimeout(() => { a4++; }, 100);
			a5++;
		}
		await fetch();
	})();



	/**
	 * 以下代码运行时, console 的打印顺序是？
	 */
	// console.log('run1'); // 1
	// setTimeout(() => {
	// 	console.log('timeout'); // 4
	// }, 100);
	// (new Promise((resolve) => {
	// 	console.log('promise'); // 2
	// 	b++; // throw Error
	// 	resolve();
	// })).then(() => {
	// 	console.log('resolve');
	// });
	// console.log('run2'); // 3
	// a1++; // throw Error
	// console.log('run3');


	// window.addEventListener("unhandledrejection", event => {
	// 	console.log('unhandledrejection', event);
	// });
	// window.addEventListener("error", event => {
	// 	console.log('onerror', event);
	// });
	// new Promise((resolve) => {
	// 	b++; // throw Error
	// 	resolve();
	// })
	// a1++; // throw Error




</script>








